/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Role Class Relationship Formal Member4</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * @see org.hl7.v3.V3Package#getRoleClassRelationshipFormalMember4()
 * @model extendedMetaData="name='RoleClassRelationshipFormal_._member_._4'"
 * @generated
 */
public enum RoleClassRelationshipFormalMember4 implements Enumerator {
	/**
	 * The '<em><b>AFFL</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #AFFL_VALUE
	 * @generated
	 * @ordered
	 */
	AFFL(0, "AFFL", "AFFL"),

	/**
	 * The '<em><b>CIT</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CIT_VALUE
	 * @generated
	 * @ordered
	 */
	CIT(1, "CIT", "CIT"),

	/**
	 * The '<em><b>CRINV</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CRINV_VALUE
	 * @generated
	 * @ordered
	 */
	CRINV(2, "CRINV", "CRINV"),

	/**
	 * The '<em><b>CRSPNSR</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CRSPNSR_VALUE
	 * @generated
	 * @ordered
	 */
	CRSPNSR(3, "CRSPNSR", "CRSPNSR"),

	/**
	 * The '<em><b>SPNSR</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #SPNSR_VALUE
	 * @generated
	 * @ordered
	 */
	SPNSR(4, "SPNSR", "SPNSR"),

	/**
	 * The '<em><b>COVPTY</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #COVPTY_VALUE
	 * @generated
	 * @ordered
	 */
	COVPTY(5, "COVPTY", "COVPTY"),

	/**
	 * The '<em><b>GUAR</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #GUAR_VALUE
	 * @generated
	 * @ordered
	 */
	GUAR(6, "GUAR", "GUAR"),

	/**
	 * The '<em><b>PAYOR</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PAYOR_VALUE
	 * @generated
	 * @ordered
	 */
	PAYOR(7, "PAYOR", "PAYOR"),

	/**
	 * The '<em><b>PAT</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PAT_VALUE
	 * @generated
	 * @ordered
	 */
	PAT(8, "PAT", "PAT"),

	/**
	 * The '<em><b>PAYEE</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PAYEE_VALUE
	 * @generated
	 * @ordered
	 */
	PAYEE(9, "PAYEE", "PAYEE"),

	/**
	 * The '<em><b>POLHOLD</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #POLHOLD_VALUE
	 * @generated
	 * @ordered
	 */
	POLHOLD(10, "POLHOLD", "POLHOLD"),

	/**
	 * The '<em><b>QUAL</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #QUAL_VALUE
	 * @generated
	 * @ordered
	 */
	QUAL(11, "QUAL", "QUAL"),

	/**
	 * The '<em><b>STD</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #STD_VALUE
	 * @generated
	 * @ordered
	 */
	STD(12, "STD", "STD"),

	/**
	 * The '<em><b>UNDWRT</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #UNDWRT_VALUE
	 * @generated
	 * @ordered
	 */
	UNDWRT(13, "UNDWRT", "UNDWRT");

	/**
	 * The '<em><b>AFFL</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>AFFL</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #AFFL
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int AFFL_VALUE = 0;

	/**
	 * The '<em><b>CIT</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>CIT</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CIT
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int CIT_VALUE = 1;

	/**
	 * The '<em><b>CRINV</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>CRINV</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CRINV
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int CRINV_VALUE = 2;

	/**
	 * The '<em><b>CRSPNSR</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>CRSPNSR</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CRSPNSR
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int CRSPNSR_VALUE = 3;

	/**
	 * The '<em><b>SPNSR</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>SPNSR</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #SPNSR
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int SPNSR_VALUE = 4;

	/**
	 * The '<em><b>COVPTY</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>COVPTY</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #COVPTY
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int COVPTY_VALUE = 5;

	/**
	 * The '<em><b>GUAR</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>GUAR</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #GUAR
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int GUAR_VALUE = 6;

	/**
	 * The '<em><b>PAYOR</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PAYOR</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PAYOR
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PAYOR_VALUE = 7;

	/**
	 * The '<em><b>PAT</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PAT</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PAT
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PAT_VALUE = 8;

	/**
	 * The '<em><b>PAYEE</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PAYEE</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PAYEE
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PAYEE_VALUE = 9;

	/**
	 * The '<em><b>POLHOLD</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>POLHOLD</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #POLHOLD
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int POLHOLD_VALUE = 10;

	/**
	 * The '<em><b>QUAL</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>QUAL</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #QUAL
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int QUAL_VALUE = 11;

	/**
	 * The '<em><b>STD</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>STD</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #STD
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int STD_VALUE = 12;

	/**
	 * The '<em><b>UNDWRT</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>UNDWRT</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #UNDWRT
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int UNDWRT_VALUE = 13;

	/**
	 * An array of all the '<em><b>Role Class Relationship Formal Member4</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final RoleClassRelationshipFormalMember4[] VALUES_ARRAY =
		new RoleClassRelationshipFormalMember4[] {
			AFFL,
			CIT,
			CRINV,
			CRSPNSR,
			SPNSR,
			COVPTY,
			GUAR,
			PAYOR,
			PAT,
			PAYEE,
			POLHOLD,
			QUAL,
			STD,
			UNDWRT,
		};

	/**
	 * A public read-only list of all the '<em><b>Role Class Relationship Formal Member4</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<RoleClassRelationshipFormalMember4> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Role Class Relationship Formal Member4</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static RoleClassRelationshipFormalMember4 get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			RoleClassRelationshipFormalMember4 result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Role Class Relationship Formal Member4</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static RoleClassRelationshipFormalMember4 getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			RoleClassRelationshipFormalMember4 result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Role Class Relationship Formal Member4</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static RoleClassRelationshipFormalMember4 get(int value) {
		switch (value) {
			case AFFL_VALUE: return AFFL;
			case CIT_VALUE: return CIT;
			case CRINV_VALUE: return CRINV;
			case CRSPNSR_VALUE: return CRSPNSR;
			case SPNSR_VALUE: return SPNSR;
			case COVPTY_VALUE: return COVPTY;
			case GUAR_VALUE: return GUAR;
			case PAYOR_VALUE: return PAYOR;
			case PAT_VALUE: return PAT;
			case PAYEE_VALUE: return PAYEE;
			case POLHOLD_VALUE: return POLHOLD;
			case QUAL_VALUE: return QUAL;
			case STD_VALUE: return STD;
			case UNDWRT_VALUE: return UNDWRT;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private RoleClassRelationshipFormalMember4(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //RoleClassRelationshipFormalMember4
